import { Dayjs } from 'dayjs';

export interface GPU {
  id: number;
  name: string;
  model: string;
  memory: string;
  serverId: number;
}

export interface Server {
  id: number;
  name: string;
  location: string;
  gpus: GPU[];
}

export interface Reservation {
  id: number;
  gpuId: number;
  applicant: string;
  startTime: Dayjs;
  endTime: Dayjs;
  purpose: string;
  contact: string;
  project: string;
}

export interface ReservationFormData {
  applicant: string;
  purpose: string;
  contact: string;
  project: string;
  dateRange: [Dayjs, Dayjs];
  timeRange: [Dayjs, Dayjs];
}

export type GPUStatus = 'available' | 'in-use' | 'reserved' | 'maintenance';

export interface GPUStatusInfo {
  status: GPUStatus;
  user?: string;
  reservation?: Reservation;
}